Anscheinend beschäftigen sich nur sehr wenige mit der Kalender Automatisierung von Outlook per VBA.
So musste ich durch viel Recherchieren in der Dokumentation und anderen Quellen sowie durch vieles Ausprobieren die Lösung selbst herausfinden. Diese wird ergänzt durch die Identifizierung des zuletzt angeklickten Tages. Dies ist für mich relevant, da ich sonst nicht weiß an welchem Tag das Datum entfernt wurde, da der Event 'ItemRemove' das Item Objekt nicht verarbeitet. Vielleicht hat jemand dieses Problem, so veröffentliche ich die Lösung. Folgender Code liegt im Klassenmodul ThisOutlookSession:
[code]Option Explicit
Public WithEvents Termine As Outlook.Items
Private Sub Application_Startup()
Set Termine = Application.Session.GetDefaultFolder(olFolderCalendar).Items
End Sub
Private Sub Termine_ItemAdd(ByVal Item As Object)
Dim selDay As Date
MsgBox "Termine_ItemAdd => " & Item.Start & " - " & Item.Subject
selDay = GetSelectedDay
MsgBox CStr(selDay)
End Sub
Private Sub Termine_ItemChange(ByVal Item As Object)
Dim selDay As Date
MsgBox "Termine_ItemChange => " & Item.Start & " - " & Item.Subject
selDay = GetSelectedDay
MsgBox CStr(selDay)
End Sub
Private Sub Termine_ItemRemove()
Dim selDay As Date
MsgBox "Termine_ItemRemove"
selDay = GetSelectedDay
MsgBox CStr(selDay)
End Sub
Function GetSelectedDay() As Date
Dim objView As CalendarView
' Check if the current view is a calendar view.
If Application.ActiveExplorer.CurrentView.ViewType = _
olCalendarView Then
' Obtain a CalendarView object reference for the current calendar view.
Set objView = Application.ActiveExplorer.CurrentView
GetSelectedDay = objView.SelectedStartTime
End If
End Function[/code]
|